#include "myTask.h"
#include "loopback.h"
#include "bsp_w5500.h"

void excecute_led(u8 flag_led)
{
  HAL_GPIO_WritePin(GPIOE, GPIO_PIN_8, ((flag_led >> 5) & 0x01) ? GPIO_PIN_RESET : GPIO_PIN_SET);  // 左红
  HAL_GPIO_WritePin(GPIOE, GPIO_PIN_9, ((flag_led >> 4) & 0x01) ? GPIO_PIN_RESET : GPIO_PIN_SET);  // 左绿
  HAL_GPIO_WritePin(GPIOE, GPIO_PIN_10, ((flag_led >> 3) & 0x01) ? GPIO_PIN_RESET : GPIO_PIN_SET); // 左黄
  HAL_GPIO_WritePin(GPIOE, GPIO_PIN_11, ((flag_led >> 2) & 0x01) ? GPIO_PIN_RESET : GPIO_PIN_SET); // 右红
  HAL_GPIO_WritePin(GPIOE, GPIO_PIN_12, ((flag_led >> 1) & 0x01) ? GPIO_PIN_RESET : GPIO_PIN_SET); // 右绿
  HAL_GPIO_WritePin(GPIOE, GPIO_PIN_15, ((flag_led >> 0) & 0x01) ? GPIO_PIN_RESET : GPIO_PIN_SET); // 右黄
}
uint8_t dest_ip[4] = {10, 0, 0, 78};
uint16_t dest_port = 5001;
uint8_t dataBuffer[DATA_BUF_SIZE] = {0x0};
uint8_t cnt;
void StartDefaultTask(void const *argument)
{

  W5500_Init();
  for (;;)
  {
    // loopback_tcpc(0x0, dataBuffer, dest_ip, dest_port);
    loopback_tcps(0x0, dataBuffer, 5001);
    // loopback_tcps(0x1, dataBuffer,5002);
    // loopback_tcps(0x2, dataBuffer,5003);
    // loopback_tcps(0x3, dataBuffer,5004);
    // loopback_udps(0x2, dataBuffer,5001);
    // HAL_Delay(500);
    receive_timeout();

    cnt++;
    if (cnt == 100)
    {
      excecute_led(0);
    }
    else if (cnt >= 200)
    {
      excecute_led(0x12);
      cnt = 0;
    }
    osDelay(1);
  }
}
void keepAlive(void const *argument)
{
  /* USER CODE BEGIN keepAlive */
  /* Infinite loop */
  for (;;)
  {
    loopback_udps(0x7, dataBuffer, 5007);
    osDelay(1000);
  }
  /* USER CODE END keepAlive */
}
